// //@flow
import React, { PureComponent, ReactNode } from "react";
// import raf from "raf";
// import hoistNonReactStatics from "hoist-non-react-statics";

// // NB this is only an utility for the examples
// class TL extends PureComponent {
//   // static displayName = `timeLoop(${C.displayName || C.name || ""})`;

//   state = {
//     time: 0,
//     tick: 0,
//   };
//   _r: any;
//   componentDidMount() {
//     let startTime: number, lastTime: number;
//     let interval = 1000 / refreshRate;
//     lastTime = -interval;
//     const loop = (t: number) => {
//       this._r = raf(loop);
//       if (!startTime) startTime = t;
//       if (t - lastTime > interval) {
//         lastTime = t;
//         this.setState({
//           time: t - startTime,
//           tick: this.state.tick + 1,
//         });
//       }
//     };
//     this._r = raf(loop);
//   }
//   componentWillUnmount() {
//     raf.cancel(this._r);
//   }
//   render() {
//     return <C {...this.props} {...} />;
//   }
// }

// hoistNonReactStatics(TL, C);
// export
// export default (
//   C: ReactNode,
//   { refreshRate = 60 }: { refreshRate?: number } = {}
// ): ReactNode => {

//   hoistNonReactStatics(TL, C);

//   return TL;
// };
